Skip to content

[PWGLF] Add HI Lambda/AntiLambda polarization around jets workflow#15263

Merged
romainschotter merged 44 commits intoAliceO2Group:masterfrom
cmuncinelli:LambdaPolRing
Mar 4, 2026
Merged

[PWGLF] Add HI Lambda/AntiLambda polarization around jets workflow#15263
romainschotter merged 44 commits intoAliceO2Group:masterfrom
cmuncinelli:LambdaPolRing

Conversation

@cmuncinelli
Copy link
Contributor

Creates the DataModel header, TableProducer, and derived data consumer for the Lambda/AntiLambda polarization analysis around jets in the HI (OO) context.
This workflow complements PWGLF's "lambdaJetPolarization.cxx" (pp) with HI-specific logic: jet background subtraction, centrality, etc.
New files: lambdaJetPolarizationIons.h, lambdaJetPolarizationIons.cxx, lambdaJetPolarizationIonsDerived.cxx.

cmuncinelli and others added 30 commits October 16, 2025 15:53
…ck table subscriptions, added QA histograms (event and V0 selection), derived data production, optimized duplicate parts on the Lambda vs AntiLambda hypothesis checks, added jet clustering.
…, adding N Jet constituents column. Renaming tables to keep the "s" convention.
…gic. Will switch to a regular compile-time histogram naming, even though that adds a lot of repeated logic
… macro to avoid rewriting 20*4 histogram fills by hand (now fixed at compile time). Still not works with current JetPolarizationIons definition (collIdx has trouble with Preslice, as it is a non-monotonic. Possibly O2 is mixing the TimeFrames and combining multiple GlobalIndices in a same subfolder of the derived data)
…xactly). Added Lambda rest frame polarization observables to compare with Hydro (still without event plane determination though!)
…r calculation, coarser binning in the LambdaMass axis for signal extraction
…ror propagation! Used TProfiles for convenience and correctness)
…. Adding QA calculations of ring observable with perpendicular jet direction and inverse polarization sign to test hypothesis of true signal
Please consider the following formatting changes to AliceO2Group#15263
@romainschotter romainschotter enabled auto-merge (squash) March 4, 2026 20:23
@romainschotter romainschotter merged commit c5fcc82 into AliceO2Group:master Mar 4, 2026
10 of 12 checks passed
#ifndef PWGLF_DATAMODEL_LAMBDAJETPOL_H_
#define PWGLF_DATAMODEL_LAMBDAJETPOL_H_

#include <Framework/ASoA.h>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The header is broken because you don't include what you use. Please fix it.

Comment on lines +29 to +40
// O2 Framework
#include <Framework/ASoA.h>
#include <Framework/ASoAHelpers.h>
#include <Framework/AnalysisDataModel.h>
#include <Framework/AnalysisTask.h>
#include <Framework/Logger.h>
#include <Framework/runDataProcessing.h>

// O2 CCDB / Conditions
#include "DataFormatsParameters/GRPMagField.h"
#include <CCDB/BasicCCDBManager.h>
#include <CCDB/CcdbApi.h>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You include plenty of unused headers in a wrong way and in a wrong order.

Comment on lines +39 to +51

// Custom data model:
#include "PWGLF/DataModel/lambdaJetPolarizationIons.h"

#include <cmath>
#include <map>
#include <string>
#include <vector>

// #include <TLorentzVector.h>
// #include <TVector3.h>
// New recommended format:
#include <Math/Vector3D.h>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment about headers

using namespace o2;
using namespace o2::framework;
using namespace o2::framework::expressions;
using std::array;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't use any array.

// Another version of this counter, which is already integrated in the Event Selection flow:
if (doEventQA && !validJetAlreadyFound)
fillEventSelectionQA(lastBinEvSel - 1, centrality); // hasRingJet passes
validJetAlreadyFound = true;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Useless

// Another version of this counter, which is already integrated in the Event Selection flow:
if (doEventQA && !validJetAlreadyFound)
fillEventSelectionQA(lastBinEvSel - 1, centrality); // hasRingJet passes
validJetAlreadyFound = true;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Useless

// cicero.domenico.muncinelli@cern.ch
//

#ifndef PWGLF_DATAMODEL_LAMBDAJETPOL_H_
Copy link
Collaborator

@vkucera vkucera Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong header guard, reported in CI.

Comment on lines +73 to +75
DECLARE_SOA_COLUMN(V0CosPA, v0cosPA, float);
DECLARE_SOA_COLUMN(V0Radius, v0radius, float);
DECLARE_SOA_COLUMN(DcaV0Daughters, dcaV0daughters, float);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The capitalisations don't match.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

4 participants